home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / alt / comp.hardware.homebuilt < prev    next >
Encoding:
Internet Message Format  |  1994-11-27  |  67.1 KB

  1. Path: bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
  2. From: sibit@datasrv.co.il (Russ Hersch)
  3. Newsgroups: comp.robotics,comp.sys.intel,comp.sys.m68k,comp.sys.6809,sci.electronics,alt.comp.hardware.homebuilt,comp.answers,sci.answers,alt.answers,news.answers
  4. Subject: Microcontroller primer and FAQ
  5. Supersedes: <microcontroller-faq/primer_783264417@rtfm.mit.edu>
  6. Followup-To: poster
  7. Date: 27 Nov 1994 15:09:05 GMT
  8. Organization: none
  9. Lines: 1607
  10. Approved: news-answers-request@MIT.EDU
  11. Expires: 11 Jan 1995 15:08:06 GMT
  12. Message-ID: <microcontroller-faq/primer_785948886@rtfm.mit.edu>
  13. NNTP-Posting-Host: bloom-picayune.mit.edu
  14. Summary: This article is a primer and general FAQ about microcontrollers.
  15. X-Last-Updated: 1994/11/27
  16. Originator: faqserv@bloom-picayune.MIT.EDU
  17. Xref: bloom-beacon.mit.edu comp.robotics:12606 comp.sys.intel:20041 comp.sys.m68k:3825 sci.electronics:69038 alt.comp.hardware.homebuilt:5656 comp.answers:8577 sci.answers:1853 alt.answers:5889 news.answers:30101
  18.  
  19. Archive-name: microcontroller-faq/primer
  20. Posting-Frequency: monthly
  21. Last-modified: Nov. 26, 1994
  22.  
  23. This article is a primer and general FAQ about microcontrollers.
  24. Included is a collection of information sources on various
  25. microcontrollers.
  26.  
  27. The following topics are addressed:
  28.  
  29.       0)  Rantings and ravings (to make the FAQ zero-based)
  30.  
  31.       1)  ABOUT THIS FAQ
  32.     1.1)  Who put this FAQ together?
  33.     1.2)  How can I contribute to this FAQ?
  34.     1.3)  What newsgroups will this FAQ be posted to?
  35.     1.4)  May I distribute this FAQ or post it somewhere else?
  36.  
  37.       2)  MICROCONTROLLERS
  38.     2.1)  What is a Microcontroller?
  39.     2.2)  Applications
  40.     2.3)  Flavors
  41.     2.4)  Special microcontroller features
  42.     2.5)  Some popular microcontrollers
  43.  
  44.       3)  MICROCONTROLLER PROGRAMMING LANGUAGES
  45.     3.1)  Machine/Assembly language
  46.     3.2)  Interpreters
  47.     3.3)  Compilers
  48.  
  49.       4)  DEVELOPMENT TOOLS
  50.     4.1)  Simulators
  51.     4.2)  Resident Debuggers
  52.     4.3)  Emulators
  53.     4.4)  Good Stereo System
  54.  
  55.       5)  FINDING OUT MORE ABOUT MICROCONTROLLERS
  56.     5.1)  Books
  57.     5.2)  Periodicals
  58.     5.3)  Internet newsgroups
  59.     5.4)  Internet sources of information on specific microcontrollers
  60.  
  61.       6)  MICROCONTROLLER FREE SOFTWARE SOURCES
  62.     6.1)  FTP sites
  63.     6.2)  BBSs
  64.  
  65.  
  66. 0)  Rantings and ravings
  67.  
  68.     Disclaimer:  Just so it is understood, the "rantings and ravings" are
  69.     my rantings and raving.  My readers are refined and sophisticated and
  70.     would never rant or rave.  I, on the other hand, sit in front of the
  71.     TV in torn underwear and drink beer out of the bottle.
  72.  
  73.     The other day I was watching my 8 year old daughter play with her
  74.     Barbie Dolls.  She has about 7 or so, including two that used to
  75.     belong to my wife (Roz) when she was a girl.  I noticed an
  76.     interesting difference between the old dolls and the new dolls.  The
  77.     old Barbies could only move their heads sideways, while the new
  78.     Barbies not only can move their heads sideways, but also up and down.
  79.     AMAZING - the old Barbies were good girls - they could only say no.
  80.     The new Barbies however can also say yes.  Progress - isn't it
  81.     wonderful!
  82.  
  83.     Which leads me to an amazing fact.  Most everyone thinks of the PIC
  84.     microcontroller line as being a recent introduction.  However,
  85.     they've been around for over 20 years.  What's the difference?  The
  86.     new chips are fabricated in CMOS, some features have been added, new
  87.     family lines have been introduced, and the company name is Microchip
  88.     and not General Instrument.  Microchip actually seems to care - they
  89.     are aggressive and are providing a product that their customers want.
  90.     Whatever the differences might be, these chips are really dynamite.
  91.  
  92.     PSST!  Hey kid!  Want a naked Barbie Doll?!
  93.  
  94.     Just a reminder to please be kind and send in your suggestions.
  95.     Thanks.
  96.  
  97.  
  98.     Take care of yourselves,
  99.  
  100.               Uncle Russ
  101.  
  102.  
  103. 1)  ABOUT THIS FAQ
  104.  
  105. 1.1)  Who put this FAQ together?
  106.  
  107.     Me again!  This FAQ is just a way to tie up loose ends.  From time to
  108.     time, general questions about microcontrollers (from beginners to
  109.     experienced designers) pop up in the newsgroups.  It seemed that a
  110.     general primer/FAQ on microcontrollers might be useful.
  111.  
  112.     Much of this document could be considered as a sort of a primer on
  113.     microcontrollers.  For those of you with previous experience,
  114.     sections 5 and 6 might be of special interest (especially for those
  115.     of you looking for that elusive "free COBOL compiler for the 1802").
  116.  
  117.  
  118. 1.2)  How can I contribute to this list?
  119.  
  120.     I please ask that if you have any suggestions or additions, or you
  121.     would like to correct any of the information contained herein, please
  122.     send me a note.
  123.          My Email address is:  sibit@datasrv.co.il
  124.          My Smail address is:
  125.                Russ Hersch
  126.                HaVradim 11
  127.                Ginot Shomron
  128.                ISRAEL
  129.  
  130.     Thanks to the following who have contributed to this document:
  131.             Robin L. Getz (National Semiconductor)
  132.             William Chernoff
  133.             Robert Boys
  134.             Cecil Moore (Intel)
  135.             Bob Coggeshall
  136.             Richard H. Barnett (who has actually succeeded in publishing
  137.                a book in 1995 - cute trick!)
  138.             Dave Dunfield (Dunfield Development Systems)
  139.             Ross Mitchell
  140.             Jason McDonald (Program Coordinator, MW Media)
  141.  
  142.     Also, thanks to those who have posted questions and to those who have
  143.     posted answers.  Thanks to "my new friends" who send suggestions and
  144.     encouragement, as well as the occasional question.  Special thanks to
  145.     my mother-in-law, who thankfully will probably never read this
  146.     document.
  147.  
  148.     I hope that those of you who have special knowledge on the subject of
  149.     microcontroller use, or know of sources of information on
  150.     microcontrollers, will share with everyone by contributing to
  151.     document.
  152.  
  153.  
  154. 1.3)  What newsgroups will this FAQ be posted to?
  155.  
  156.     I will test the waters by initially posting to the following
  157.     newsgroups:
  158.           comp.robotics
  159.           comp.sys.intel
  160.           comp.sys.m68k
  161.           comp.sys.6809
  162.           sci.electronics
  163.           alt.comp.hardware.homebuilt
  164.  
  165.     I will look forward to any suggestions about postings.  I will
  166.     probably post once a month - probably on or about the 26th of each
  167.     month.
  168.  
  169.  
  170. 1.4)  May I distribute this FAQ or post it somewhere else?
  171.  
  172.     I am putting no restrictions on the use of this FAQ except - It must
  173.     be distributed in its entirety with the copyright notice, and no
  174.     financial gain may be realized from it.  After all, I have spent, and
  175.     continue to spend, a lot of time on this.
  176.  
  177.     For this reason I have appended a copyright statement to the end of
  178.     this FAQ.  I feel pretty silly doing this, but I just want to protect
  179.     myself.  The copyright does not limit the use of this list for
  180.     noncommercial purposes.  I hereby give my permission to one and all
  181.     to pass this list around and post it wherever you want - as long as
  182.     it is not for financial gain.
  183.  
  184.         Thank you.
  185.  
  186.  
  187. 2)  MICROCONTROLLERS
  188.  
  189.  
  190. 2.1)  What is a Microcontroller?
  191.  
  192.     A controller is used to control (makes sense!) some process or aspect
  193.     of the environment.  A typical microcontroller application is the
  194.     monitoring of my house.  As the temperature rises, the controller
  195.     causes the windows to open.  If the temperature goes above a certain
  196.     threshold, the air conditioner is activated.  If the system detects
  197.     my mother-in-law approaching, the doors are locked and the windows
  198.     barred.  In addition, upon detecting that my computer is turned on,
  199.     the stereo turns on at deafening volume (for more on this, see the
  200.     section on development tools).
  201.  
  202.     At one time, controllers were built exclusively from logic
  203.     components, and were usually large, heavy boxes.  Later on,
  204.     microprocessors were used and the entire controller could fit on a
  205.     small circuit board.  This is still common - you can find many [good]
  206.     controllers powered by one of the many common microprocessors
  207.     (including Zilog Z80, Intel 8088, Motorola 6809, and others).
  208.  
  209.     As the process of miniaturization continued, all of the components
  210.     needed for a controller were built right onto one chip.  A one chip
  211.     computer, or microcontroller was born.  A microcontroller is a highly
  212.     integrated chip which includes, on one chip, all or most of the parts
  213.     needed for a controller.  The microcontroller could be called a
  214.     "one-chip solution".  It typically includes:
  215.           CPU (central processing unit)
  216.           RAM (Random Access Memory)
  217.           EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
  218.           I/O (input/output) - serial and parallel
  219.           timers
  220.           interrupt controller
  221.  
  222.     By only including the features specific to the task (control), cost
  223.     is relatively low.  A typical microcontroller has bit manipulation
  224.     instructions, easy and direct access to I/O (input/output), and quick
  225.     and efficient interrupt processing.  Microcontrollers are a "one-chip
  226.     solution" which drastically reduces parts count and design costs.
  227.  
  228.  
  229. 2.2)  Applications
  230.  
  231.     In addition to control applications such as the above home monitoring
  232.     system, microcontrollers are frequently found in embedded
  233.     applications.  Among the many uses that you can find one or more
  234.     microcontrollers:  appliances (microwave oven, refrigerators,
  235.     television and VCRs, stereos),  automobiles (engine control,
  236.     diagnostics, climate control), environmental control (greenhouse,
  237.     factory, home), instrumentation, aerospace, and thousands of other
  238.     uses.
  239.  
  240.     Microcontrollers are used extensively in robotics.  In this
  241.     application, many specific tasks might be distributed among a large
  242.     number of microcontrollers in one system.  Communications between
  243.     each microcontroller and a central, more powerful microcontroller (or
  244.     microcomputer, or even large computer) would enable information to be
  245.     processed by the central computer, or to be passed around to other
  246.     microcrontrollers in the system.
  247.  
  248.     A special application that microcontrollers are well suited for is
  249.     data logging.  Stick one of these chips out in the middle of a corn
  250.     field or up in a ballon, and monitor and record environmental
  251.     parameters (temperature, humidity, rain, etc).  Small size, low power
  252.     consumption, and flexibility make these devices ideal for unattended
  253.     data monitoring and recording.
  254.  
  255. 2.3)  Flavors
  256.  
  257.     Microcontrollers come in many flavors and varieties.  Depending on
  258.     the power and features that are needed, you might choose a 4 bit, 8
  259.     bit, 16 bit, or 32 bit microcontroller.  In addition, some
  260.     specialized versions are available which include features specific
  261.     for communications, signal processing, video processing, and other
  262.     tasks.
  263.  
  264.  
  265. 2.4)  Special microcontroller features
  266.  
  267.  
  268.     CMOS - Complementary Metal Oxide Semiconductor
  269.  
  270.        This is the name of a common technique used to fabricate most (if
  271.        not all) of the newer microcontrollers.  CMOS requires much less
  272.        power than older fabrication techniques, which permits battery
  273.        operation.  CMOS chips also can be fully or near fully static,
  274.        which means that the clock can be slowed up (or even stopped)
  275.        putting the chip in sleep mode.  CMOS has a much higher immunity
  276.        to noise (power fluctuations or spikes) than the older fabrication
  277.        techniques.
  278.  
  279.  
  280.     PMP - Post Metal Programming (National Semiconductor)
  281.  
  282.        PMP is a high-energy implantation process that allows
  283.        microcontroller ROM to be programmed AFTER final metalization.
  284.        Usually ROM is implemented in the second layer die, with nine or
  285.        ten other layers then added on top.  That means the ROM pattern
  286.        must be specified early in the production process, and completed
  287.        prototypes devices won't be available typically for six to eight
  288.        weeks.  With PMP, however, dies can be fully manufactured through
  289.        metalization and electrical tests (only the passivation layers
  290.        need to be added), and held in inventory.  This means that ROM can
  291.        be programmed late in production cycle, making prototypes
  292.        available in only two weeks.
  293.  
  294.  
  295.     OTP - One Time Programmable
  296.  
  297.        An OTP is a PROM (Programmable Read-Only-Memory) device.  Once
  298.        your program is written into the device with a standard EEPROM
  299.        burner, it can not be erased or modified.  This is usually used
  300.        for limited production runs before a ROM mask is done in order to
  301.        test code.
  302.  
  303.  
  304.     Watchdog timer
  305.  
  306.        A watchdog timer provides a means of graceful recovery from a
  307.        system problem.  This could be a program that goes into an endless
  308.        loop, or a hardware problem that prevents the program from
  309.        operating correctly.  If the program fails to reset the watchdog
  310.        at some predetermined interval, a hardware reset will be
  311.        initiated.  The bug may still exist, but at least the system has a
  312.        way to recover.  This is especially useful for unattended systems.
  313.  
  314.  
  315.     Analog to Digital Conversion (A/D)
  316.  
  317.        Converts an external analog signal (typically relative to voltage)
  318.        and converts it to a digital representation.  Microcontrollers
  319.        that have this feature can be used for instrumention,
  320.        environmental data logging, or any application that lives in an
  321.        analog world.
  322.  
  323.  
  324.     Comparator
  325.  
  326.        One or more standard comparators can sometimes be placed on a
  327.        microcontroller die.  These comparators operate much like standard
  328.        comparators however the input and output signals are available on
  329.        the microcontroller bus.
  330.  
  331.  
  332.     Pulse width modulator
  333.  
  334.        Often used as a digital-to-analog conversion technique.  A pulse
  335.        train is generated and regulated with a low-pass filter to
  336.        generate a voltage proportional to the duty cycle.
  337.  
  338.  
  339.     Pulse accumulator
  340.  
  341.        A pulse accumulator is an event counter.  Each pulse increments
  342.        the pulse accumulator register, recording the number of times this
  343.        event has occured.
  344.  
  345.  
  346.     Input Capture
  347.  
  348.        Input Capture can precisely measure external frequencies or time
  349.        intervals by copying the value from a free running timer into a
  350.        register when an external event occurs.
  351.  
  352.  
  353.     Clock Monitor
  354.  
  355.        A clock monitor can shut the microcontroller down (by holding the
  356.        microcontroller in reset) if the input clock is too slow.  This
  357.        can usually be turned on or off under software control.
  358.  
  359.  
  360.     Brownout Protection
  361.  
  362.        Brownout protection is usually an on-board protection circuit that
  363.        resets the device when the operating voltage (Vcc) is lower than
  364.        the Brownout voltage.  The device is held in reset and will remain
  365.        in reset when Vcc stays below the Brownout voltage.  The device
  366.        will resume execution (from reset) after Vcc has risen above the
  367.        Brown Out Voltage.
  368.  
  369.  
  370.     UART
  371.  
  372.        A UART (Universal Asynchronous Receiver Transmitter) is a serial
  373.        port adapter for asynchronous serial communications.
  374.  
  375.  
  376.     USART
  377.  
  378.        A USART (Universal Synchronous/Asynchronous Receiver Transmitter)
  379.        is a serial port adapter for either asynchronous or synchronous
  380.        serial communications.
  381.  
  382.  
  383.     Synchronous serial port
  384.  
  385.        A synchronous serial port doesn't require start/stop bits and can
  386.        operate at much higher clock rates than an asynchronous serial
  387.        port.  Used to communicate with high speed devices such as memory
  388.        servers, display drivers, additional A/D ports, etc.  Can also be
  389.        used to implement a simple microcontroller network.
  390.  
  391.  
  392.     SPI (Motorola)
  393.  
  394.        An SPI (serial peripheral interface) is a synchronous serial port.
  395.  
  396.  
  397.     SCI
  398.  
  399.        An SCI (serial communications interface) is an enhanced UART
  400.        (asynchronous serial port).
  401.  
  402.  
  403.     I2C bus - Inter-Integrated Circuit bus (Intel)
  404.  
  405.        The I2C but is a two line, multi-master, multi-slave network
  406.        interface with collision detection.  Several peripherals also
  407.        exist that support the I2C bus.  Each node (microcontroller or
  408.        peripheral) may initiate a message, and then transmit or receive
  409.        data.  The two lines of the network consist of the serial data
  410.        line and the serial clock line.  Each node on the network has a
  411.        unique address which accompanies any message passed between nodes.
  412.        Since only 2 wires are needed, it is easy to interconnect a number
  413.        of devices.
  414.  
  415.  
  416.     MICROWIRE/PLUS (National Semiconductor)
  417.  
  418.        MICROWIRE/PLUS is a serial synchronous bi-directional
  419.        communications interface.  This is used on National Semiconductor
  420.        Corporation's devices (microcontrollers, A/D converters, display
  421.        drivers, EEPROMS, etc.).
  422.  
  423.  
  424.     Software protection
  425.  
  426.        Either by encryption or fuse protection, the programmed software
  427.        is protected against unauthorized snooping (reverse engineering,
  428.        modifications, piracy, etc.).
  429.  
  430.  
  431.     Idle/Halt/Wakeup
  432.  
  433.        The device can be placed into IDLE/HALT mode by software control.
  434.        In both Halt and Idle conditions the state of the microcontroller
  435.        remains.  RAM is not cleared and any outputs are not changed.  The
  436.        terms idle and halt often have different definitions, depending on
  437.        the manufacturer.  What some call idle, others may call halt, and
  438.        vice versa.  It can be confusing, so check the data sheet for the
  439.        device in question to be sure.
  440.  
  441.        In IDLE mode, all activities are stopped except:
  442.          - associated on-board oscillator circuitry
  443.          - watchdog logic (if any)
  444.          - the clock monitor
  445.          - the idle timer (a free running timer)
  446.        Power supply requirements on the microcontroller in this mode are
  447.        typically around 30% of normal power requirements of the
  448.        microprocessor.  Idle mode is exited by a reset, or some other
  449.        stimulus (such as timer interrupt, serial port, etc.).  A special
  450.        timer/counter (the idle timer) causes the chip to wake up at a
  451.        regular interval to check if things are OK.  The chip then goes
  452.        back to sleep.
  453.  
  454.        IDLE mode is extremely useful for remote, unattended data logging
  455.        - the microprocessor wakes up at regular intervals, takes its
  456.        measurements, logs the data, and then goes back to sleep.
  457.  
  458.        In Halt mode, all activities are stopped (including timers and
  459.        counters).  The only way to wake up is by a reset or device
  460.        interrupt (such as an I/O port).  The power requirements of the
  461.        device are minimal and the applied voltage (Vcc) can sometimes be
  462.        decreased below operating voltage without altering the state
  463.        (RAM/Outputs) of the device.  Current consumption is typically
  464.        less than 1 uA.
  465.  
  466.        A common application of HALT mode is in laptop keyboards.  In
  467.        order to have maximum power saving, the controller is in halt
  468.        until it detects a keystroke (via a device interrupt).  It then
  469.        wakes up, decodes and sends the keystroke to the host, and then
  470.        goes back into halt mode, waiting either for another keystroke, or
  471.        information from the host.
  472.  
  473.  
  474.     Resident program loader
  475.  
  476.        Loads a program by Initializing program/data memory from either a
  477.        serial or parallel port.  Convenient for prototyping or trying out
  478.        new features, eliminates the erase/burn/program cycle typical with
  479.        EPROMs, and allows convenient updating of a system even from an
  480.        offsite location.
  481.  
  482.  
  483.     Monitor
  484.  
  485.        A monitor is a program installed in the microcontroller which
  486.        provides basic development and debug capabilities.  Typical
  487.        capabilities of a microcontroller monitor include:  loading object
  488.        files into system RAM, executing programs, examining and modifying
  489.        memory and registers, code disassembly, setting breakpoints, and
  490.        single-stepping through code.  Some simple monitors only allow
  491.        basic functions such as memory inspection, and the more
  492.        sophisticated monitors are capable of a full range of debug
  493.        functions.
  494.  
  495.        Monitors can either communicate with a dumb terminal or with a
  496.        host computer such as a PC.  Much of the work of the monitor (such
  497.        as user interface) can be offloaded to the host PC running a
  498.        program designed to work with the monitor.  This makes it possible
  499.        to reduce the size and complexity of the code that must be
  500.        installed in the target system.
  501.  
  502.  
  503.     MIL transducer
  504.  
  505.        An MIL transducer is a sophisticated and expensive device that
  506.        detects the presence of your mother-in-law.  Sensitivity settings
  507.        are possible for a full range of stimuli such as:  snarling,
  508.        stomping, nasty faces, and others.  Techno-Wimp (address withheld
  509.        upon request), the sole manufacturer of the MIL transducer, has
  510.        recently announced a major new version which is sensitive enough
  511.        to detect less-tangible stimuli.  This breakthrough product is
  512.        dubbed the MIL-WOMF ("Whoa, outta my face!") transducer.  Both the
  513.        original MIL and the new MIL-WOMF transducers are programmable and
  514.        easy to interface to most microcontrollers.
  515.  
  516.  
  517. 2.5)  Some popular microcontrollers
  518.  
  519.     Some common microcontrollers are described below.  A common question
  520.     is "what microcontroller should I use for...?"  Well, that's a tough
  521.     one.  The best advice would be to choose a chip that has a full set
  522.     of development tools at the price you can afford, and good
  523.     documentation.  For the hobbyist, the Intel 8051, Motorola 68hc11, or
  524.     Microchip PIC would all make suitable choices.
  525.  
  526.  
  527.     8048 (Intel)
  528.  
  529.        The grandaddy of 'em all, the first microcontroller, it all
  530.        started here!  Although a bit long in the tooth and a bit kludgey
  531.        in design (at least by today's standards), it is still very
  532.        popular due to its very low cost, availability, and wide range of
  533.        development tools.
  534.  
  535.        Split memory architecture with program ROM on chip with an
  536.        additional 64 to 256 bytes also on chip.  I/O is mapped in its own
  537.        space.
  538.  
  539.  
  540.     8051 (Intel and others)
  541.  
  542.        The 8051, Intel's second generation of microcontrollers, rules the
  543.        microcontroller market at the present time.  Although featuring a
  544.        somewhat bizarre design, it is a very powerful and easy to program
  545.        chip (once you get used to it).
  546.  
  547.        Split memory architecture with separate address spaces for program
  548.        memory and data memory.  The program memory can be up to 64K.  The
  549.        lower portion (4K or 8K depending on type) may reside on chip.
  550.        The 8051 can address up to 64K of external data memory, and is
  551.        accessed only by indirect addressing.  The 8051 has 128 bytes (256
  552.        bytes for the 8052) of on-chip RAM, plus a number of special
  553.        function registers (SFRs).  I/O is mapped in its own space.
  554.  
  555.        The 8051 features the so-called "boolean processor".  This refers
  556.        to the way instructions can single out bits just about anywhere
  557.        (RAM, accumulators, I/O registers, etc.), perform complex bit
  558.        tests and comparisons, and then execute relative jumps based on
  559.        the results.
  560.  
  561.        Piles of software, both commercial and free, are available for the
  562.        8051 line.  Many manufacturers supply what must be a hundred
  563.        different variants of this chip for any requirement.  Often
  564.        featured in construction projects in the popular hobbyist
  565.        magazines.
  566.  
  567.  
  568.     80186,80188 (Intel)
  569.  
  570.        These chips are, in essence, microcontroller versions of the 8086
  571.        and 8088 (of IBM/PC fame).  Included on the chip are: 2 channels
  572.        of DMA, 2 counter/timers, programmable interrupt controller, and
  573.        dynamic RAM refresh.  There are several variations including:  low
  574.        power versions, variations with serial ports, and so on.
  575.  
  576.        One major advantage you gain by using one of these
  577.        microcontrollers is that you can use standard PC development tools
  578.        (compilers, assemblers, etc) for developing you applications.  If
  579.        you are already familiar with PC software development, the
  580.        learning curve will be short, since these chips have the same
  581.        basic architecture as the original 8088 (as used in the IBM/PC).
  582.  
  583.        Other advantages include high speed processing, a full megabyte
  584.        addressing space, and powerful interrupt processing.
  585.  
  586.  
  587.     80386 EX (Intel)
  588.  
  589.        The 80386 EX is of course a 386 in microcontroller clothing.
  590.        Included on the chip are: serial I/O, power management, DMA,
  591.        counter/timers, programmable interrupt controller, and dynamic RAM
  592.        refresh.  And of course, all of the power of the 386
  593.        microprocessor.
  594.  
  595.        One major advantage you gain by using one of these
  596.        microcontrollers is that you can use standard PC development tools
  597.        (compilers, assemblers, etc) for developing you applications.  If
  598.        you are already familiar with PC software development, the
  599.        learning curve will be short, since these chips have the same
  600.        basic architecture as the original 8088 (as used in the IBM/PC).
  601.  
  602.        We're talking power here gang.
  603.  
  604.  
  605.     8096
  606.  
  607.        The third generation of Intel microprocessors, the 8096 is a 16
  608.        bit processor.  Among the many features it includes are: hardware
  609.        multiply and divide, 6 addressing modes, high speed I/O, A/D,
  610.        serial communications channel, up to 40 I/O ports, 8 source
  611.        priority interrupt controller, PWM generator, and watchdog timer.
  612.  
  613.  
  614.     6805 (Motorola)
  615.  
  616.        The 6805 is based loosely on the manufacturer's earlier 6800, with
  617.        some similarities to the 6502.  It has a common memory
  618.        architecture in which instructions, data, I/O, and timers all
  619.        share the same space.  Stack pointer is 5 bits wide which limits
  620.        the stack to 32 bytes deep.  Some members of this family include
  621.        on chip A/D, PLL frequency synthesizer, serial I/O, and software
  622.        security.
  623.  
  624.  
  625.     68hc11 (Motorola and others)
  626.  
  627.        The popular 68hc11 is a powerful 8-bit data, 16-bit address
  628.        microcontroller from Motorola (the sole supplier) with an
  629.        instruction set that is similar to the older 68xx parts (6801,
  630.        6805, 6809).  The 68hc11 has a common memory architecture in which
  631.        instructions, data, I/O, and timers all share the same memory
  632.        space.
  633.  
  634.        Depending on the variety, the 68hc11 has built-in EEPROM/OTPROM,
  635.        RAM, digital I/O, timers, A/D converter, PWM generator, pulse
  636.        accumulator, and synchronous and ansynchronous communications
  637.        channels.  Typical current draw is less than 20ma.
  638.  
  639.  
  640.     683xx (Motorola)
  641.  
  642.        The MC68EC300 series incorporates various peripherals into various
  643.        68k family core processors.  These can be called "integrated
  644.        processors".  They are really super-microcontrollers, very high
  645.        performance, capable of high processing speeds, and able to
  646.        address large amounts of memory.  A typical example from this line
  647.        would be the 68331.  It is based on a 68020-like core and has
  648.        about the same processing power as an Intel 80386.
  649.  
  650.  
  651.     PIC (MicroChip)
  652.  
  653.        The PIC line of microcontrollers has been popular for over 20
  654.        years.  Microchip (which was originally [owned by] General
  655.        Instruments), seems to have recreated this microcontroller into a
  656.        product universally regarded as a powerful and cost effective
  657.        solution.  The PIC microcontrollers were the first RISC
  658.        microcontrollers, and maybe still the only ones.
  659.  
  660.        RISC generally implies that simplicity of design allows more
  661.        features to be added at lower cost, and the PIC line is no
  662.        exception.  Although having few instructions (eg. 33 instructions
  663.        for the 16C5X line versus over 90 for the Intel 8048), the PIC
  664.        line has a wealth of features included as part of the chip.
  665.        Separate buses for instructions and data (Harvard architecture)
  666.        allows simultaneous access of program and data, and overlapping of
  667.        some operations for increased processing performance.  The
  668.        benefits of design simplicity are a very small chip, small pin
  669.        count, and very low power consumption.
  670.  
  671.        PIC microcontrollers are rapidly gaining in popularity.  They are
  672.        being featured more and more often in construction projects in
  673.        popular hobbyist magazines, and are chalking up a good number of
  674.        design wins.  Due to their low cost, small size, and low power
  675.        consumption, these microcontrollers can now be used in areas that
  676.        previously wouldn't have been appropriate (such as logic
  677.        circuits).  They are currently available in three lines:  the
  678.        PIC16C5x, PIC16Cxx, and PIC17Cxx families.
  679.  
  680.  
  681.     COP800 Family (National Semiconductor)
  682.  
  683.        The COP800 Basic Family is a fully static 8-bit microcontroller,
  684.        fabricated using double metal silicon gate microCMOS technology.
  685.        This low cost microcontroller contains all system timing,
  686.        interrupt logic, ROM, RAM, and I/O necessary to implement
  687.        dedicated control functions in a variety of applications.
  688.  
  689.        Depending on the device, features include:  8-bit memory mapped
  690.        architect, MICROWIRE serial I/O, UART, memory mapped I/O, many 16
  691.        bit timer/counters with capture registers, a multi-sourced
  692.        vectored interrupt, comparator, WATCHDOG Timer and Clock monitor,
  693.        Modulator/Timer (high speed PWM timer for IR transmission),
  694.        8-channel A/D converter with prescaler and both differential and
  695.        single-ended modes, brownout protection, halt mode, idle mode,
  696.        high current I/O pins with 15mA sink capability, Schmitt trigger
  697.        inputs and Multi-Input-Wake-Up.  Most devices operate over a
  698.        voltage range from 2.5V to 6V.
  699.  
  700.        High throughput is achieved with an efficient, powerful
  701.        instruction set operating at a 1uS per instruction rate (most
  702.        instructions are single byte/single cycle) including true bit
  703.        manipulation and BCD arithmetic instructions.  Most devices have
  704.        military versions for -55C to +125C.
  705.  
  706.  
  707.     Z8 (Zilog)
  708.  
  709.        A "loose" derivative of the Zilog Z80, the Z8 is actually a
  710.        composite of several different achitectures.  Not really
  711.        compatible with the Z80 peripherals.  Has a unique architecture
  712.        with three memory spaces:  program memory, data memory, and a CPU
  713.        register file.  On-chip features include UART, timers, DMA, up to
  714.        40 I/O lines.  Some versions include a synchronous/asynchronous
  715.        serial channel.  Features fast interrupt response with 37
  716.        interrupt sources.  The Z8671 has Tiny Basic in ROM.  The Super-8
  717.        is just that, a super version of the Z8 with more of everything.
  718.  
  719.  
  720.     HD64180 (Hitachi)
  721.  
  722.        A powerful microcontroller with full Z80 functionality plus:
  723.        extended memory management, two DMA channels, synchronous and
  724.        asynchronous communications channels, timers, and interrupt
  725.        controller.  Some versions of this chip also include EPROM, RAM,
  726.        and PIO (programmable input/output).  It runs Z80 code in fewer
  727.        clock cycles than the Z80 and adds in hardware multiply and a few
  728.        other instructions.  Available in versions that run up to 18MHz.
  729.  
  730.  
  731.     TMS370 (Texas Instruments)
  732.  
  733.        It is similar to the 8051 in having 256 registers,  A and B
  734.        accumulators, stack in this register page, etc.  It also has a
  735.        host of onboard support devices, some members have all of them
  736.        while others have a subset, the peripherals include:  RAM, ROM
  737.        (mask, OTP, or EEPROM), 2 timers (configurable as timers/
  738.        counters/comparators/PWM output), watchdog timer, SCI (syncronous
  739.        serial port), SPI (asynchronous serial port), A/D (8 bit, 8
  740.        channel), interupts.
  741.  
  742.        Instruction set is mostly 8 bit with some 16 bit support.  Has
  743.        several addressing modes, 8x8 multiply, 16/8 divide.  Clock speeds
  744.        are up to 20MHz which gives 5MHz for buss access and instruction
  745.        cycles.  Pins mostly TTL compatible (except clock and reset).
  746.  
  747.        Packages include:
  748.              28,40 DIP
  749.              28 CLCC
  750.              28,44,68 PLCC
  751.              40,64 SDIP
  752.  
  753.        A developers/proto board is available.  It is a multi layer PCB
  754.        about 12"x7" with RS-232 serial I/O, and monitor as well as access
  755.        to all processor pins on a patch and proto area.  Support software
  756.        includes IBM-PC monitor & loader, cross assembler (absolute only).
  757.        A pure serial TTY monitor is also supported.  Sole power
  758.        requirement is +5v.  Priced is about $500 or so.
  759.  
  760.        A relocating assembler and linker, and a C compiler are also
  761.        available.
  762.  
  763.  
  764.     1802 (RCA)
  765.  
  766.        This is a real old-timer.  The 1802 is the successor to the 1801
  767.        (2 chip set) which was the first microprocessor implemented in
  768.        CMOS.  Both products were called microprocessors by RCA, not
  769.        microcontrollers.  However, since the 1801 was implemented in CMOS
  770.        and therefore had low power requirements, it was often used in
  771.        microcontroller applications.  The 1802, with its higher level of
  772.        integration and ease of use, could actually be considered a true
  773.        microcontroller.  The 1802 has separate data and I/O address
  774.        spaces.
  775.  
  776.  
  777. 3)  MICROCONTROLLER PROGRAMMING LANGUAGES
  778.  
  779.     Just a bit of an introduction for the beginner.
  780.  
  781. 3.1)  Machine/Assembly language
  782.  
  783.     Machine language is the program representation as the microcontroller
  784.     understands it.  It is not easy for humans to read and is a common
  785.     cause of migraine headaches.  Assembly language is a human-readable
  786.     form of machine language which makes it much easier for us flesh and
  787.     bone types to deal with.  Each assembly language statement
  788.     corresponds to one machine language statement (not counting macros).
  789.  
  790.     An assembly/machine language program is fast and small.  This is
  791.     because you are in complete charge of what goes into the program.  Of
  792.     course, if you write a slow, large, stupid program, then it will run
  793.     slowly, be too big, and be stupid.  Assembly language (assembler)
  794.     can't correct stupidity - although sometimes I wish it could ;-).
  795.  
  796.     If you are starting out learning about microcontrollers, it would be
  797.     worth your while first learning assembler.  By programming in
  798.     assembler, you master the underlying architecture of the chip, which
  799.     is important if you intend to do anything significant with your
  800.     microcontroller.
  801.  
  802.  
  803. 3.2)  Interpreters
  804.  
  805.     An interpreter is a high level language that is closer to natural
  806.     language.  The interpreter itself is a program that sits resident in
  807.     the microcontroller.  It executes a program by reading each language
  808.     statement one at a time and then doing what the statement says to do.
  809.     The two most popular interpreters for microcontrollers are BASIC and
  810.     FORTH.
  811.  
  812.     BASIC's popularity is due to its simplicity, readability, and of
  813.     course just about everyone has at least played with BASIC at one time
  814.     or another.  One common compaint about [interpreted] BASIC is that it
  815.     is slow.  Often this can be solved by using a different technique for
  816.     performing the desired task.  Other times it is just the price paid
  817.     for using an interpreter.
  818.  
  819.     FORTH has a very loyal following due to its speed (approaching that
  820.     of assembler language) and its incremental approach to building a
  821.     system from reusable parts.  Many FORTH systems come with a host
  822.     system which turns your desktop computer into a development system.
  823.     FORTH can be quite difficult to write in (if you have no experience
  824.     with it) and is probably even harder to read.  However, it is a very
  825.     useful and productive language for control systems and robotics and
  826.     can be mastered in time.
  827.  
  828.     The nicest thing about developing a system with an interpreter is
  829.     that you can build your program interactively.  You first write a
  830.     small piece of code and then you can try it out immediately to see
  831.     how it works.  When the results are satisfactory, you can then add
  832.     additional components until the final product is achieved.
  833.  
  834.  
  835. 3.3)  Compilers
  836.  
  837.     A compiler is a high level language that combines the programming
  838.     ease of an interpreter with greater speed.  This is accomplished by
  839.     translating the program (on a host machine such as a desktop PC)
  840.     directly into machine language.  The machine language program is then
  841.     burned onto an EPROM or downloaded directly to the microcontroller.
  842.     The microcontroller then executes the translated program directly,
  843.     without having to interpret first.
  844.  
  845.     The most popular microcontroller compilers are C and BASIC.   PL/M,
  846.     from Intel, also has some popular support due to that company's
  847.     extensive use of that language.
  848.  
  849.     Due to both its popularity and its slow speed, it was only logical
  850.     that BASIC would appear as a compiled language.  A few companies
  851.     supply a BASIC compiler for several of the more popular
  852.     microcontrollers.  Execution speed is drastically increased over
  853.     interpreted BASIC since the microcontroller is freed from the task of
  854.     interpreting the statements as the program runs.
  855.  
  856.     C is now the language of choice for the entire universe.  C is used
  857.     on computers from the tiny microcontroller up to the largest Cray
  858.     supercomputer.  Although a C program can be a bit tedious at times to
  859.     read (due to the terse programming style followed by many C
  860.     programmers), it is a powerful and flexible development tool.
  861.     Although a high level language, it also gives the developer access to
  862.     the underlying machine.  There are several very good and cheap C
  863.     compilers available for the more popular microcontrollers.  It is
  864.     widely used, available, supported, and produces fairly efficient code
  865.     (fast and compact).
  866.  
  867.  
  868. 4)  DEVELOPMENT TOOLS
  869.  
  870.     Having a programming language is usually not enough to develop a
  871.     program for a microcontroller.  Some way of debugging your program is
  872.     needed.  I am only too painfully aware of this fact.
  873.  
  874.  
  875. 4.1)  Simulators
  876.  
  877.     A simulator runs your microcontroller program on a host machine (such
  878.     as your PC).  You can step through the code to see exactly what is
  879.     happening as the program runs.  Contents of registers or variables
  880.     can be altered to change the way the program runs.  Eliminates (or at
  881.     least delays) the erase/burn/program EPROM cycle common in
  882.     microcontroller program development.  You can work out ideas or learn
  883.     about microcontrollers by experimenting with small code fragments and
  884.     watching on the screen what happens.  A simulator can't support real
  885.     interrupts or devices, and usually runs much slower than the real
  886.     device the program is intended for.
  887.  
  888.  
  889. 4.2)  Resident Debuggers
  890.  
  891.     A resident debugger runs your program on the microcontroller itself,
  892.     while showing the progress on your host machine (such as a PC).  Has
  893.     many of the same advantages as simulator above, with the additional
  894.     benefit of seeing how the program runs on the real target machine.  A
  895.     resident debugger needs to "steal" some resources from the target
  896.     machine, including: a communications port to communicate with the
  897.     host, an interrupt to handle single stepping, and a certain amount of
  898.     memory for the resident part (on the target) of the debugger.
  899.  
  900.  
  901. 4.3)  Emulators
  902.  
  903.     If you've got the money, this is the equipment you want to develop
  904.     your system with (yeah, that's right, a preposition at the end of a
  905.     sentence!).  A [usually] expensive piece of hardware that even for
  906.     the cheaper versions will run you at least $700.  An emulator is a
  907.     sophisticated device that pretends that it is the microprocessor
  908.     itself, while at the same time capturing information.  It provides
  909.     full and total control over your target, while at the same time not
  910.     requiring any resources from the target.  The emulator can either be
  911.     a stand alone device with its own display, or it can be interface to
  912.     a PC.
  913.  
  914. 4.4)  Good Stereo System
  915.  
  916.     This is the most important tool for the microcontroller developer, or
  917.     for any computer system developer for that matter.  Don't expect to
  918.     get anywhere unless you have the proper music playing in the
  919.     background(?) at the proper volume.  I find that I do my best work
  920.     with the Rolling Stones (especially Goats Head Soup) or Clapton
  921.     (especially early stuff like Cream - Disraeli Gears is a killer
  922.     album!).  The volume must be set to cause excrutiating pain to be
  923.     most effective.  Trust me on this ;-).
  924.  
  925.  
  926. 5)  FINDING OUT MORE ABOUT MICROCONTROLLERS
  927.  
  928.     If you are interested in learning more about microcontrollers, there
  929.     are many fine sources of information.  You have your choice of
  930.     printed media (books, periodicals, informative graffiti) or
  931.     interactive (right here on the Internet, or BBSs).
  932.  
  933.  
  934. 5.1)  Books
  935.  
  936.     The 16 bit 8096:  Programming, Interfacing, Applications
  937.         - Ron Katz and Howard Boyet
  938.         - Microprocessor Training Inc
  939.           14 East 8th Street, New York, NY  10003
  940.           212-473-4947
  941.         - Library of Congress Catalog card number:  85-61954
  942.         - According to William Chernoff:  "The book is pretty good -
  943.           mostly software examples.  The one hardware thing I looked
  944.           closely at was wrong - a schematic error.  Oh well."
  945.  
  946.     The 68hc11 Microcontroller
  947.         - Joseph D. Greenfield (at R.I.T.)
  948.         - Saunders College Publishing, (Harcourt Brace Jovanovich)
  949.         - 1992
  950.         - ISBN 0-03-051588-2
  951.         - A number of the sections make use of the Buffalo monitor.
  952.           This could be useful if you are using the Motorola Trainer EVB.
  953.  
  954.     The 8051 Family of Microcontrollers
  955.         -Richard H. Barnett
  956.         -Prentice-Hall, 1995 (yeah, that's right, 1995!)
  957.         -ISBN 0-02-306281-9
  958.  
  959.     8051 Interfacing and Applications
  960.         - Applied Logic Engineering
  961.           13008 93rd Place North, Maple Grove, MN  55369
  962.         - (612)494-3704
  963.  
  964.     8051 Product Directory
  965.         - MW Media
  966.         - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
  967.         - (408)286-4200
  968.         - FAX: (408)288-4728
  969.  
  970.     The 8051 Microcontroller
  971.         - I. Scott MacKenzie
  972.         - Macmillan Publishing Company, 1992
  973.  
  974.     The 8051 Microcontroller
  975.         - James W. Stewart
  976.         - Prentice Hall, 1993
  977.  
  978.     The 8051 Microcontroller: Architecture, Programming and Applications
  979.         - Kenneth J. Ayala
  980.         - 241 pages, soft cover
  981.         - 5.25" diskette with assembler and simulator
  982.         - ISBN 0-314-77278-2, Dewey 004.165-dc20
  983.         - West Publishing Company
  984.           P.O. Box 64526, St. Paul, MN  55164
  985.           (800)328-9352
  986.         - see review in next section
  987.  
  988.     Assembly Language Programming (for the MCS-51 family)
  989.         - F. A. Lyn
  990.         - L. S. Electronic Systems Design
  991.  
  992.     Basic-52 Programmer's Guide
  993.         - Systronix, Inc. (they also sell a Basic compiler)
  994.         - address above
  995.  
  996.     Beginner's Guide
  997.         - Suncoast Technologies
  998.  
  999.     A Beginners Guide to the Microchip PIC
  1000.         - Nigel Gardner
  1001.         - Character Press, Ltd. (UK)
  1002.         - ISBN 1 899013 00 8
  1003.         - software (on floppy) and hardware guide, debugging techniques
  1004.         - Available from Polar Electronics in UK for 19.95 UK Pounds
  1005.  
  1006.     C and the 8051
  1007.         - Thomas W. Schultz
  1008.         - Prentice Hall
  1009.         - ISBN 0-13-753815-4
  1010.  
  1011.     Data Acquisition and Process Control with the M68HC11 Microcontroller
  1012.         - Frederick Driscoll, Robert Coughlin, Robert Villanucci of
  1013.           Wentworth Institute of Technology.
  1014.         - Macmillan Publishing Company
  1015.         - 1994
  1016.         - ISBN 0-02-33055-X
  1017.         - Several Chapters on the 68HC11, instructions, and EVB;
  1018.           chapters on interfacing Analog and Digital signals to the
  1019.           68HC11;  example applications of interfaces to temperature,
  1020.           load cell, pressure and thermocouple sensors.
  1021.         - a good companion to Motorola's "pink" books
  1022.  
  1023.     Data book / Handbook / Users' Guide
  1024.         - Advanced Micro Devices
  1025.         - Dallas (User's guide for the DS5000)
  1026.         - Intel
  1027.         - Siemens
  1028.  
  1029.     Design with Microcontrollers
  1030.         - John B. Peatman
  1031.         - ISBN 0-07-049238-7
  1032.         - This book is on a more advanced level.  Uses both the 68hc11
  1033.           and Intel 8096 as example systems.
  1034.         - Used for a very popular course on microcontroller design at
  1035.           Georgia Tech.
  1036.  
  1037.     Embedded Controller Forth for the 8051 Family
  1038.         - Academic Press
  1039.         - William H. Payne
  1040.         - uses a Forth development system available on the Internet
  1041.  
  1042.     Embedded Controllers Databook 1992 Edition
  1043.         - National Semiconductor Corporation
  1044.         - literature number: 400049
  1045.         - (800)272-9959 call this number for for copies
  1046.  
  1047.     Embedded Systems Programming in C and Assembler
  1048.         - John Forrest Brown
  1049.         - Van Nostrand Reinhold, 1994
  1050.         - 304 pages, $49.95
  1051.         - ISBN 0-442-01817-7
  1052.         - covers Motorola and Intel processors
  1053.         - includes diskette with code from the book
  1054.         - book review in Dr. Dobb's Journal, November 1994, page 121
  1055.  
  1056.     Experimenter's guide
  1057.         - Rigel Corporation
  1058.  
  1059.     Intel Development Tools Handbook, 2nd Edition
  1060.     (Support Solutions for Intel's Embedded Microprocessor)
  1061.         - MW Media
  1062.         - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
  1063.         - (408)286-4200
  1064.         - FAX: (408)288-4728
  1065.         - Survey of commercial development tools for the 8051, 8096,
  1066.           and 80186 lines of Intel microprocessors.  This document could
  1067.           very well be a "must" if you're into serious development using
  1068.           one of these chips.  If you are "just" a hobbyist, see how the
  1069.           "other half" lives.
  1070.  
  1071.     Introduction to Microcontroller Design, Based on the 8051 family of
  1072.     Processors
  1073.         - Business Data Computers
  1074.           P.O. Box 1549, Chester, CA  96020
  1075.  
  1076.     M68hc11 Reference Manual
  1077.         - Motorola - literature reference M68HC11RM/AD
  1078.         - This document is the "bible" of the 6811 and is a must-have
  1079.           for any serious 6811 programmer.
  1080.  
  1081.     MC68hc811E2 Programming Reference Guide
  1082.         - Motorola - literature reference M68HC811E2RG
  1083.         - A pocket-sized guide to the version of the 6811 used on the
  1084.           Mini Board
  1085.  
  1086.     Microcomputer Engineering
  1087.         - Gene H. Miller
  1088.         - Prentice Hall, Englewood Cliffs, NJ  07632
  1089.         - 1993
  1090.         - ISBN 0-13-584475-4
  1091.         - Explains the basics.  Many clear and concise assembly language
  1092.           example programs.
  1093.         - Written to be used with the Motorola Trainer (EVB).
  1094.  
  1095.     Microcontroller Technology, The 68hc11
  1096.         - Peter Spasov
  1097.         - Prentice Hall
  1098.         - ISBN 0-13-583568-2
  1099.  
  1100.     Microcontrollers: Architecture, Implementation, and Programming
  1101.         - Kenneth Hintz and Daniel Tabak
  1102.         - McGraw-Hill Inc.  1992
  1103.         - ISBN 0-07-028977-8
  1104.  
  1105.     MW Media - Product Directories
  1106.         - Motorola Microcontroller Tools Directory
  1107.           ('94 edition out in 3 weeks)
  1108.         - Motorola 68K Source ('94 edition available now)
  1109.         - Intel Development Tools Handbook ('95 edition just beginning)
  1110.           (survey of commercial development tools for the 8051, 8096,
  1111.           and 80186 lines of Intel microprocessors)
  1112.         - Embedded Intel 386 Directory (released in Aug '94)
  1113.         - Intel 486/Pentium directory (forthcoming in '95)
  1114.         - 8051 Product Directory ('94 edition out in 4 weeks)
  1115.           (survey of various 8051 products)
  1116.         - Hitachi Microcontroller Development Tools Directory
  1117.           (out in '95)
  1118.         - AMD FusionE86 Directory (out in '95)
  1119.           (186,386,486)
  1120.         - AMD 29K Directory (pending in '95)
  1121.         - Low Power Product Directory (out in '95)
  1122.           (3.3. volts and lower)
  1123.         - DSP Directory (released in May '94)
  1124.         - Multimedia CD (hopefully out in '95)
  1125.         - These documents could very well be a "must" if you're into
  1126.           serious development using any of these chips.  If you are
  1127.           "just" a hobbyist, see how the "other half" lives.
  1128.         - FREE to qualified developers
  1129.         - MW Media
  1130.         - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
  1131.         - (408)288-4721 and (408)286-4200
  1132.         - FAX: (408)288-4728
  1133.         - Email: jasonm@violet.berkeley.edu
  1134.                  (Jason McDonald, program director)
  1135.  
  1136.     Programmer's Guide to the 1802
  1137.         - Tom Swan
  1138.         - Hayden Book Company, Inc., 1981
  1139.         - ISBN 0-8104-5183-2
  1140.         - good introduction to assembly language progamming and an
  1141.           thorough tutorial on the 1802
  1142.  
  1143.     Programming Microcontrollers in C
  1144.         - Ted Van Sickle
  1145.         - HighText Publications, 1994
  1146.         - 394 pages, $29.95
  1147.         - ISBN 1-878707-14-0
  1148.         - thorough tutorial on C programming, covers aspects of C
  1149.           programming specific to embedded systems
  1150.         - covers the Motorola line of microcontrollers (small to large)
  1151.         - book review in Dr. Dobb's Journal, November 1994, page 121
  1152.  
  1153.     Single- and Multiple-Chip Microcomputer Interfacing
  1154.         - G.J. Lipovski
  1155.         - Copyright 1988
  1156.         - 478 pages
  1157.         - ISBN 0-13-810557-X (Prentice-Hall Edition)
  1158.           ISBN 0-13-810573-1 (Motorola Edition)
  1159.         - Based around the 68HC11 it covers both hardware and
  1160.           software at undergraduate level, but the emphasis is on
  1161.           interfacing.
  1162.         - Chapter titles:
  1163.                1  Microcomputer Architecture
  1164.                2  Programming Microprocessors
  1165.                3  Bus Hardware and Signals
  1166.                4  Parallel and Serial I/O
  1167.                5  Interrupts and Alternatives
  1168.                6  Analog Interfacing
  1169.                7  Counters and Timers
  1170.                8  Communications Systems
  1171.                9  Storage and Display Systems
  1172.  
  1173.     Single- and Multiple- Chip Microcomputer Interfacing (Lab Manual)
  1174.         - Peter Song and G. Jack Lipovski
  1175.         - Prentice-Hall, 1988
  1176.         - ISBN 0-13-811605-9
  1177.         - Support for the above book.  Examples based around the Motorola
  1178.           EVB and the BUFFALO monitor or the EVBU (or 3-chip micro) and
  1179.           PC-Bug11.
  1180.  
  1181.     User Manual for the CDP1802 COSMAC Microprocessor
  1182.         - RCA, 1977
  1183.         - contains useful hardware and software techniques
  1184.  
  1185.  
  1186. 5.2)  Periodicals
  1187.  
  1188.     Various magazines and journals (journals seems to be THE popular name
  1189.     for magazines these days) provide articles from time to time on
  1190.     microcontrollers.  If you are just starting out learning, pick those
  1191.     magazines that feature construction articles.
  1192.  
  1193.     The Computer Applications Journal (Circuit Cellar Ink)
  1194.         - programming and construction articles
  1195.         - POB 7694, Riverton, NJ  08077-8784
  1196.         - Fax: (203)872-2204
  1197.         - Voice orders: (609) 786-0409
  1198.         - On-line orders (BBS): (203) 871-1988
  1199.         - Email orders: ken.davidson@circellar.com
  1200.         - $21.95, $31.95 surface Canada and Mexico,
  1201.           $49.95 air all other countries
  1202.  
  1203.     Computer Design
  1204.         - industry announcements and trends
  1205.         - One Technology Park Drive, P.O. Box 990, Westford, MA  01886
  1206.         - (508)692-0700
  1207.  
  1208.     The Computer Journal
  1209.         - programming and construction articles
  1210.         - PO Box 535, Lincoln  96648
  1211.  
  1212.     Dr. Dobbs Journal
  1213.         - programming articles, concepts, and designs
  1214.         - 411 Borel Ave., San Mateo, CA  94402
  1215.         - (415)358-9500
  1216.  
  1217.     Electronic Engineering Times
  1218.         - industry announcements and trends
  1219.         - 500-B Bi-County Boulevard, Farmingdale, NY  11735
  1220.         - (516)293-3000
  1221.  
  1222.     Electronics Now
  1223.         - construction articles
  1224.         - Box 55115, Boulder, CO  80321-5115
  1225.         - $19.97 one year
  1226.  
  1227.     Elektor Electronics
  1228.         - programming and construction articles
  1229.         - World Wide Subscription Service Ltd
  1230.           Unit 4, Gibbs Reed Farm, Pashley Road
  1231.           Ticehurst TN5 7HE, England
  1232.         - 27 UK pounds
  1233.      or
  1234.         - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
  1235.         - Tel. (603) 924-6371, 924-6526
  1236.         - Fax: (603) 924-9467
  1237.         - $57 USA and Canada per year
  1238.  
  1239.     Embedded Systems Programming
  1240.         - programming and systems design articles
  1241.         - Miller Freeman Publications
  1242.         - 500 Howard St., San Francisco, CA  94105
  1243.         - (415) 397-1881
  1244.  
  1245.     Inquisitor Magazine
  1246.              - If you're the type that watched Gilligan's Island for its
  1247.           socio-political insights, then you'll love a new 'zine that
  1248.           just crossed my desk - Inquisitor Magazine.  It's general
  1249.           philosophy seems to be ... well, it seems to be ... uh, yeah!
  1250.           Technical in nature, bizarre, tongue in cheek, eclectic,
  1251.           electric, did I mention bizarre(?), and lots of fun.  Worth
  1252.           looking at if you like the out of the ordinary.  The moving
  1253.           force behind this magazine is Daniel Drennan, who seems to have
  1254.           suffered from an overdose of radiation from his computer
  1255.           monitor ;-).
  1256.              - Planetarium Station, P.O.Box 132
  1257.                New York, NY  10024-0132
  1258.              - (212)595-8370
  1259.              - Email: inquisitor@echonyc.com
  1260.              - $16 per year (4 issues)
  1261.  
  1262.     M     icrocomputer Journal (formerly Computer Craft)
  1263.              - programming and construction articles
  1264.              - 76 N. Broadway, Hicksville, NY  11801
  1265.              - $18.95 one year, foreign $23.00, foreign air mail $76.00
  1266.  
  1267.     M     idnight Engineering
  1268.              - 1700 Washington Ave., Rocky Road, CO  81067
  1269.              - (719)254-4553
  1270.  
  1271.     N     uts & Volts Magazine
  1272.              - A National Publication for the Buying and Selling of
  1273.                Electronic Equipment
  1274.              - 430 Princeland Court, Corona, CA  91719
  1275.              - Mailed third class, USA only:  $17.00 one year
  1276.                                               $31.00 two years
  1277.              - Mailed first class, one year only:  $34.00-USA
  1278.                                                    $35.00-Canada/Mexico
  1279.              - Foreign/Air Mail - $70.00;  Foreign/Surface - $39.00
  1280.              - (800)783-4624
  1281.              - Email:  74262.3664@Compuserve.com
  1282.  
  1283.  
  1284. 5     .3)  Internet newsgroups
  1285.  
  1286.     V     arious newsgroups frequently have discussions or information on
  1287.           various microcontrollers.  Among some of the more useful
  1288.           (especially
  1289.     t     he first 3 newsgroups):
  1290.  
  1291.     c     omp.robotics
  1292.        M     icrocontrollers figure heavily in robotics projects.  You will
  1293.              find a lot of information about the subject in this
  1294.              newsgroup.  Even if you aren't building a robot, check this
  1295.              newsgroup out.  Lots of 68hc11 activity, too.
  1296.  
  1297.     s     ci.electronics
  1298.     a     lt.comp.hardware.homebuilt
  1299.        T     wo good places to find [mostly technical] discussions on
  1300.              microcontroller use and implementation.  Most of the
  1301.              participants are crazy about "rolling their own", and they
  1302.              are eager to share their knowledge.
  1303.  
  1304.     c     omp.realtime
  1305.        O     ccasional discussions about real-time use of microcontollers.
  1306.  
  1307.     c     omp.sys.m68k
  1308.        T     he full line of Motorola 68000 microprocessors is discussed in
  1309.              this newsgroup, including the very powerful and advanced
  1310.              microcontrollers based on this family.
  1311.  
  1312.     c     omp.sys.6809
  1313.        T     his newsgroup covers an old-time favorite, the 6809
  1314.              microprocessor, which is commonly used for control
  1315.              applications.  Motorola 8 bit microprocessors and
  1316.              microcontrollers (6805, 6811, etc.) are also discussed in
  1317.              this newsgroup.
  1318.  
  1319.     c     omp.sys.intel
  1320.        M     ostly trends and development are discussed in this newsgroup.
  1321.              From time to time you will find a discussion on some obtuse
  1322.              technical problem or feature.
  1323.  
  1324.     c     omp.lang.misc
  1325.        S     ometimes questions or discussions on different microcontroller
  1326.              topics pop up here.  I guess it's the ".misc" that attracts
  1327.              these questions.
  1328.  
  1329.  
  1330. 5     .4)  Internet sources of information on specific microcontrollers
  1331.  
  1332.     I     f you are interested in finding sources of information on a specific
  1333.           microcontroller, check out the really fine FAQs ;-) that have
  1334.           been compiled for the more popular microcontrollers.
  1335.  
  1336.            Subject:  PIC microcontrollers
  1337.            Newsgroups:  sci.electronics
  1338.            Maintainer:  Tom Kellett
  1339.                         Tom@takdsign.demon.co.uk
  1340.  
  1341.            Subject:  8051 microcontrollers
  1342.            Newsgroups:  comp.sys.intel
  1343.                         comp.realtime
  1344.                         comp.robotics
  1345.                         comp.lang.forth
  1346.                         sci.electronics
  1347.            Archive:  rtfm.mit.edu :  <plus all mirror sites>
  1348.                      /pub/usenet/comp.answers/microcontroller-faq/8051
  1349.                      /pub/usenet/sci.answers/microcontroller-faq/8051
  1350.                      /pub/usenet/news.answers/microcontroller-faq/8051
  1351.            Maintainer:  Russ Hersch
  1352.                         Email:  sibit@datasrv.co.il
  1353.  
  1354.            Subject:  68hc11 microcontrollers
  1355.            Newsgroups:  comp.realtime
  1356.                         comp.robotics
  1357.                         sci.electronics
  1358.            Archive:  rtfm.mit.edu :  <plus all mirror sites>
  1359.                      /pub/usenet/comp.answers/microcontroller-faq/68hc11
  1360.                      /pub/usenet/sci.answers/microcontroller-faq/68hc11
  1361.                      /pub/usenet/news.answers/microcontroller-faq/68hc11
  1362.            Maintainer:  Russ Hersch
  1363.                         Email:  sibit@datasrv.co.il
  1364.  
  1365.            Subject:  Motorola 68K microprocessor line
  1366.            Newsgroups:  comp.sys.m68k
  1367.            Archive:  bode.ee.ualberta.ca : pub/motorola/general
  1368.                      ftp.luth.se : /pub/misc/motorola/faq
  1369.                      file name of archive is m68kfaq?.zip (? is version)
  1370.            Maintainer:  Robert Boys
  1371.                            Ontario, Canada
  1372.                         Email: r.boys@genie.geis.com
  1373.                                       or
  1374.                                fboys@uoguelph.ca
  1375.  
  1376.  
  1377.     S     everal other FAQs have been compiled that address various aspects of
  1378.           microcontroller design and implementation.
  1379.  
  1380.            Subject:  Robotics
  1381.            Newsgroups:  comp.robotics
  1382.            Maintainer:  Kevin Dowling
  1383.                         (412)268-8830
  1384.                         Email:  nivek@ri.cmu.edu
  1385.                         Smail:  Carnegie Mellon University
  1386.                                 The Robotics Institute
  1387.                                 Pittsburgh, PA 15213
  1388.  
  1389.            Subject:  Electronics
  1390.            Newsgroups:  sci.electronics
  1391.            Maintainer:  Filip Gieszczykiewicz
  1392.                         Email:  filip@smi.med.pitt.edu
  1393.  
  1394.            Subject:  Real-time
  1395.            Newsgroups:  comp.realtime, comp.answers, news.answers
  1396.            Archive:  rtfm.mit.edu : pub/usenet/comp.realtime
  1397.            Maintainer:  Mark Linimon
  1398.                             Lonesome Dove Computing Services
  1399.                             Roanoke, Virginia
  1400.                         Email:  linimon@nominil.lonesome.com.
  1401.  
  1402.  
  1403. 6     )  MICROCONTROLLER FREE SOFTWARE SOURCES
  1404.  
  1405.  
  1406.     T     his section includes descriptions and references to free
  1407.           microcontroller software.  FTP sites and BBSs contain many
  1408.           quality packages and code samples for free.  For heavy duty
  1409.           use, you might prefer the many commercial packages that are
  1410.           available.  With the public domain (or free) stuff, you're
  1411.           usually on your own.  The commercial packages usually provide
  1412.           extensive documentation and support.
  1413.  
  1414.     I     f you are looking for commercial software for the 8051, 68hc11, or
  1415.           PIC, then check out the FAQs on these microcontrollers for
  1416.           details on what is available.
  1417.  
  1418.     F     or the hobbyist, or professional on a budget, who would like to buy
  1419.           a reasonably priced and well supported development package,
  1420.           check out Dunfield Development.  For only $100.00 you get a
  1421.           near ANSI C compiler, assembler, monitor/debugger, and much
  1422.           more.  The following chips are supported:  6809, 68hc11,
  1423.           68hc16, 8051/52, 8080/85, 8086, and 8096.
  1424.                Dunfield Development Systems
  1425.                P.O. Box 31044
  1426.                Nepean, Ontario  K2B 8S8
  1427.                Canada
  1428.                (613)256-5820
  1429.                Fax: (613)256-5821
  1430.                Email:  ddunfield@bix.com
  1431.  
  1432.     I     f you're just looking for a plain C compiler without the frills,
  1433.           ImageCraft has just released version 1 of their compiler for
  1434.           the 68hc11.  The price is just $40 for a near ANSI C compiler.
  1435.           Initial feedback on this compiler seem promising.  The
  1436.           pre-release versions are already in use by many of you, and
  1437.           will still be available as freeware.
  1438.                ImageCraft
  1439.                P.O. Box 64226
  1440.                Sunnyvale, CA 94086-9991
  1441.                (Richard Man) imagecft@netcom.com
  1442.  
  1443.  
  1444. 6     .1)  FTP sites
  1445.  
  1446.  
  1447.     T     he following is a list of the anonymous ftp sites that have source
  1448.           code and programming languages for various microcontrollers.
  1449.           There are many others that  are not listed here that contains
  1450.           bits and pieces.  Usually you can find them using Archie and
  1451.           searching for
  1452.     v     ariations on the name of the microntroller you are looking for.
  1453.  
  1454.     f     tp.pppl.gov (formerly lyman.pppl.gov)
  1455.              - this is a great source of 8051 stuff
  1456.              /pub/8051
  1457.              /pub/incoming - check this out for new untested/unsorted items
  1458.  
  1459.     f     tp.mcc.ac.uk
  1460.              - this is a new 8051 ftp site
  1461.  
  1462.     f     tp.intel.com
  1463.              - good source of stuff the MCS-51 and MCS-96 families
  1464.              /pub/mcs51 - various development tools and sample code for the
  1465.                           MCS-51 family
  1466.              /pub/mcs96 - various development tools and sample code for the
  1467.                           MCS-96 family
  1468.  
  1469.     b     ode.ee.ualberta.ca
  1470.              - HUGE archive of all sorts of stuff on the 68hc11 (lots of other
  1471.           good stuff too!)
  1472.              - you'll have fun mucking around this ftp site, there's piles of
  1473.           stuff here
  1474.              /pub/cookbook
  1475.              /pub/motorola
  1476.              /pub/motorola/68hc11
  1477.              /pub/motorola/mcu11
  1478.  
  1479.     cherupakha.media.mit.edu (cher.media.mit.edu)
  1480.              - HUMONGOUS archive of all sorts of stuff on the 68hc11 including
  1481.           the 6.270 robotics project, Mini Board, F1 board, and more
  1482.           (lots of other good stuff too!)
  1483.              - you'll lose yourself rooting around this ftp site, there's
  1484.           piles of stuff here (assemblers, tools, C compilers, plans and
  1485.           schematics, and many other items)
  1486.              /pub/6270 - tools, docs, schematics, etc. for the MIT 6.270
  1487.                robotics project using a 68hc11-based development system
  1488.              /pub/6811 - software, schematics, etc. for the 68hc11-based F1
  1489.                board
  1490.              /pub/incoming - various unsorted or new items
  1491.              /pub/miniboard - software, docs, schematics, etc. for the 3"x2",
  1492.           68hc11-based Mini Board controller
  1493.  
  1494.     listserv@oberon.com
  1495.         - mailing list for the Mini Board and 6.270 board
  1496.         - send a message containing the word "help" for directions
  1497.         - mailing list address:  robot-board@oberon.com
  1498.         - maintainer:  gkulosa@oberon.com
  1499.  
  1500.     ftp.funet.fi (nic.funet.fi)
  1501.         - this is a good source for various microcontrollers
  1502.         /pub/microprocs/ (subdirectories include: 1802, 6805, 8048,
  1503.            8051, 8096 and many other microprocessors)
  1504.  
  1505.     ernie.uvic.ca
  1506.         - files provided by local Motorola representative
  1507.         /pub (subdirectories include: ibm, dsp96k, dsp56100, dsp56k,
  1508.           dsptools, develop, mac, mcu302, mcu332, mcu11, pgmr, mcu16,
  1509.           mcu, market, qa, general, m68k, evm, dsp)
  1510.  
  1511.     ftp.sics.se
  1512.         - PIC microcontroller software from the PIC BBS
  1513.         - ftp site of Memec Scandinavia, Microchip's Swedish agent.
  1514.         /pub/mchipsoft
  1515.  
  1516.     wpi.wpi.edu
  1517.         - basic stamp information PLUS PIC "C" compiler
  1518.         /stamp
  1519.  
  1520.     ftp.luth.se
  1521.         /pub/misc/microchip - PIC information
  1522.         /pub/languages/assembler - various freeware assemblers
  1523.  
  1524.     hpcsos.col.hp.com
  1525.         /misc/ns32k/beowulf
  1526.  
  1527.     ftp.netcom.com
  1528.         /pub/imagecft - prerelease version of ImageCraft C for 68hc11
  1529.  
  1530.     info@circellar.com - Email (not ftp)
  1531.         - send Email to get information file on services available
  1532.         - all Circuit Cellar INK and BYTE related files available
  1533.  
  1534.     asterix.inescn.pt - FORTH archive
  1535.         /pub/forth
  1536.  
  1537.  
  1538. 6.2)  BBSs
  1539.  
  1540.     The following BBSs have 8051 information:
  1541.  
  1542.     Circuit Cellar, Inc.
  1543.              - contains code from their magazine articles and from the
  1544.           original Circuit Cellar articles in Byte magazine, also
  1545.           contains many other interesting items
  1546.              - The BBS is mentioned in the masthead of each issue (on the
  1547.           table of contents page).  Excerpts from the BBS appear in Ken
  1548.           Davidson's ConnecTime column in every issue with a description
  1549.           of how to access the system at the end of every column.
  1550.              - (203)871-1988
  1551.              - Voice: (203)875-2751
  1552.              - Fax: (203)872-2204
  1553.  
  1554.     Dunfield Development Systems
  1555.         - support for their Micro-C C compiler and development tools
  1556.         - includes a lot of nice goodies - CHECK THIS OUT!
  1557.         - (613) 256-6289
  1558.  
  1559.     Electronics Now
  1560.         - contains code from their magazine articles
  1561.         - (516)293-2283
  1562.         - 1200/2400, 8N1
  1563.  
  1564.     Intel American Marketing Applications Support Bulletin Board System
  1565.         - 16 lines, hi-speed modems (14.4K)
  1566.         - Lots of useful info and files (including design examples)
  1567.         - Full ANSI-BBS with color is recommended, but support for just
  1568.           about all terminal types is provided
  1569.         - 916-356-3600 (24 hours)
  1570.           Auto config: 1200 thru 14.4K Baud
  1571.           8 data bits, no parity, 1 stop
  1572.  
  1573.     Don Lekei BBS
  1574.         - support for the PIC line of microcontrollers
  1575.         - (604)597-3479 (Canada)
  1576.  
  1577.     Microchip BBS
  1578.         - support for the PIC line of microcontrollers
  1579.         - Contact by dialing the same number you would use to get to
  1580.           Compuserve at 19200,n,8,1, except that you press +<CR> at the
  1581.           (garbage) prompt, followed by MCHIPBBS as the host (instead of
  1582.           CIS).
  1583.  
  1584.     Motorola (Austin Texas) BBS
  1585.         - terrific, has piles of stuff, only some of which is on
  1586.           bode.ee.ualberta.ca
  1587.         - (512) 891-3733 (Austin, Texas)
  1588.         - V.32 9600 Baud modems w/ MNP-5
  1589.         - 8 Data Bits, No Parity, 1 Stop Bit.
  1590.  
  1591.     Other Motorola BBSs:
  1592.         - Munich, Germany:  49-89-92103-111  (2400 baud)
  1593.         - Stuttgart, Germany:  49-7031-275496  (19200 baud)
  1594.         - San Diego, California:  (619) 279-3907
  1595.         - Toronto, Ontario, Canada:  (416) 497-8989
  1596.  
  1597.     Philips Semiconductor (parent company of Signetics)
  1598.         - support for: standard logic, programmable logic,
  1599.           in-car electronics (planned), 8 and 16 bit microcontrollers,
  1600.           I2C software, third party software, discrete semiconductors,
  1601.           cross assemblers (general), RF (planned)
  1602.         - PHIBBS is located in the Netherlands: +31-40-721102
  1603.         - maximum 14400 baud / V42bis
  1604.         - 24 hours a day available
  1605.         - Help desk: +31-40-722749  (9.00 AM - 16.00 PM CET)
  1606.  
  1607.     Signetics (Philips Semiconductors)
  1608.         - support for their 8051 variants
  1609.         - contains many good source code items
  1610.         - partially mirrored on ftp.pppl.gov and nic.funet.fi
  1611.         - (800)451-6644 or (408)991-2406
  1612.  
  1613.  
  1614. __________________________________________________________
  1615.  
  1616. Copyright (c) 1994 by Russell Hersch, all rights reserved.
  1617. This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  1618.   as long as it is posted in its entirety and includes this copyright
  1619.   statement.
  1620. This FAQ may not be distributed for financial gain.
  1621. This FAQ may not be included in commercial collections or compilations
  1622.    without express permission from the author.
  1623.  
  1624. -----------------------------------
  1625. Russ Hersch - sibit@datasrv.co.il
  1626.